package com.hd.sup.modules.alarm.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hd.common.constant.BizConstant;
import com.hd.common.utils.Pair;
import com.hd.sup.modules.alarm.model.AlarmRuleVehicle;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.scheduling.annotation.Async;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author chentl123
 * @since 2021-01-07
 */
public interface IAlarmRuleVehicleService extends IService<AlarmRuleVehicle> {

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 查询待分配车辆分页列表
     * @date 2021/1/18 4:20 下午
     * @params [page, param]
     */
    List<Map<String, Object>> pageList(Page page, AlarmRuleVehicle param);

    /**
     * @return void
     * @author chentl
     * @description 缓存所有车辆规则信息
     * @date 2021/1/27 10:47 上午
     * @params [ruleId,transTypes]
     */
    void cacheVehicleRules(String ruleId,List<String> transTypes);

    /**
    * @author chentl
    * @description 解绑
    * @date 2021/3/17 4:33 下午
    * @params [ruleId, transType]
    * @return void
    */
    void deleteVehicleRules(String ruleId,String transType);

    /**
    * @author chentl
    * @description 绑定报警规则 到 运输类型
    * @date 2021/3/17 3:09 下午
    * @params [rule, ruleTransType]
    * @return com.hd.common.utils.Pair<java.lang.String,java.lang.String>
    */
    Pair<String,String> bindTransType(String rule, BizConstant.RuleTransType ruleTransType);
}
